This invention relates generally to computer networks, and more particularly to the testing of an implementation of a remote access protocol, such as the Point-to-point Protocol, in network servers and/or clients.
Computer networking is a quite complicated subject matter, especially in the context of remote access services, as it often involves computers that are different on many levels and have different configurations and capabilities. For instance, two computers attempting to form a network connection may be running on different operating systems, use different sets of network connection media, and support different types of authentication. To enable different computers to establish communication connections with each other, a remote access protocol is used to allow two computers to agree upon how they should conduct subsequent communications over a network. An example of a remote access protocol is the Point-to-Point protocol (PPP), which is actually a set of industry standard protocols that enable remote access solutions to be incorporated in a multi-vendor network. Under the PPP, when a network client dials up (via modem or other media) to a server, they go through a negotiation process to agree upon the various protocols they will use for the subsequent communication, such as link control protocols, authentication protocols, network control protocols, etc.
The PPP is typically implemented in a remote access service (RAS) as part of an operating system that supports networking functionality. To ensure that the PPP has been implemented properly, the provider of the server software has to test the RAS with different combinations of server and client configurations to see whether connection attempts will succeed or fail as expected for the configuration combinations. A thorough testing of the PPP implementation, however, has been very difficult to manage and carry out. This is because of the extremely large number of different combinations of server and client configurations that may be encountered in real operations. The various attributes of a server, such as its compression mechanism, authentication protocol, encryption settings, authentication mechanism, network protocol settings, domain settings, and many other attributes, give rise to thousands of possible ways a server can be configured. A client likewise has an equally wide range of possible configurations. Moreover, the client may be running on one of many different operating systems with various system attributes enabled or disabled. Furthermore, the network connection between the server and the client may be over different media, such as modem, L2TP, PPTP, ISDN, etc. All these configuration variations of the server and the client can result in millions of possible combinations, and it can be a daunting task to test all, or even a selected portion, of those combinations.
For instance, if a tester is to manually set the configurations of the server and the client and initiate the connection process for each combination, the amount of time and efforts required to go through the combinations to be tested will be prohibitively large. If it takes two minutes on the average for a tester to reconfigure the server and client for each new combination, and only the most important one million combinations are to be tested, it would take over thirty thousand man-hours to perform the test. Prior to the invention, there has been no testing system or method available that enables automated testing of the implementation of a remote access protocol, such as the PPP, in network servers and/or clients, in a flexible, efficient, and controlled manner.
In view of the foregoing, the present invention provides a system and method for testing the implementation of a remote access protocol in network servers and/or clients that allows the numerous different combinations of server and client configurations to be tested in an efficient, controllable, and reliable way. In accordance with the invention, the testing of the protocol implementation is conducted in a distributed manner that involves one or more test controllers and multiple server computers and client computers. The different server-client configuration combinations to be tested, referred to as xe2x80x9ctest cases,xe2x80x9d are maintained in a database, which indicates whether a test case has been tested as well as the pass/fail results of executed test cases. When a server joins the pool of servers participating in the testing, it registers with an available test controller. Likewise, a client joining the client pool registers with the test controller. The test controller matches a client with a server based on their configuration capabilities and/or other factors, such as the type of test cases the server and the client want to execute. Selected test cases are obtained from the database and assigned to the server-client pair for testing. For each assigned test case, the client assumes the client configurations of the test case and initiates a call to the server to try to establish a connection under the remote access protocol being tested, and the server assumes the server configurations of the test case in responding to the client""s call to establish a connection. The results of the executed test cases (i.e., whether the client was able to establish connections with the server) are reported for analysis and may be monitored by a user. After the assigned test cases are executed, the server may be paired with a different client, and vice versa, or new test cases may be assigned to the server and client for further testing.
Additional features and advantages of the invention will be made apparent from the following detailed description of illustrative embodiments, which proceeds with reference to the accompanying figures.